

"""
jwt json web token
token字符串xxxx.yyyy.zzzz
xxxx 头部
yyyy 载荷（用户相关信息，uid,role等，不存敏感信息，如密码）
zzzz 签名 密钥
"""
import datetime
import time

import jwt

import hashlib

# 生成token
def create_jwt():
    pay_load = {
        'id': 1,
        'username': 'xiaoming',
        'role': 'admin',
        'exp': datetime.datetime.utcnow() + datetime.timedelta(seconds=5) # 设置过期时间
    }
    secret = 'python2511' # 密钥
    token = jwt.encode(pay_load, secret, algorithm='HS256')#algorithm:签名的算法
    return token

# 校验token真伪
def verify_jwt(token):
    result = jwt.decode(token, key='python2511',algorithms=['HS256'])
    return result


if __name__ == '__main__':
    token = create_jwt()
    # eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJ4aWFvbWluZyIsInJvbGUiOiJhZG1pbiJ9.W1UV1lbT1jy_XBTwMo1ql26LRkocIzyubszwGKLRmjY
    print(token)
    time.sleep(7) # 让token过期 ExpiredSignatureError
    print(verify_jwt(token))

    # print(hashlib.md5("111111".encode('utf-8')).hexdigest())